package cn.isjinhao.se.sql.function.handler;

import cn.isjinhao.se.sql.Error;
import cn.isjinhao.se.sql.grammar.statement.CurdStatementType;
import cn.isjinhao.se.sql.grammar.statement.Function;
import cn.isjinhao.se.structure.ResultType;

/**
 * @Author ISJINHAO
 * @Date 2021/7/24 22:58
 */
public interface FunctionHandler extends Error {

    String functionName();

    ResultType resultType();

    void staticCheck(Function function, CurdStatementType type);

    Object evaluate(Function function, CurdStatementType type, Object... parameters);

}
